上一篇介紹了以人為中心的機器學習,
也談了一點點主動式學習和互動式機器學習,
這篇就來更細談互動式機器學習吧!
互動式機器學習的基本想法是,
比起傳統的機器學習,每個一步驟都是一整個資料集一起做,
互動式機器學習強調透過互動不斷演進模型。
什麼意思呢?
傳統上,機器學習的主要幾個大步驟,
大致包含了「資料標註(Labeling)」、
「特徵生成(Featuring)」、
「模型設計(Modeling)」、
「模型訓練(Training)」、
「模型評估(Evaluation)」。
這每一個步驟其實都是一項工程,
但模型的好壞,往往到了最後一個評估的步驟,
才會有辦法知道。
有時候如果模型的建造者跟真正要用的人不是同一個,
模型建造者可能自己評測過後覺得表現不錯了,
帶去給真的要用這個模型的人看,
才知道原來他重視的點跟原本的假設不同。
這樣就算要調整模型,
可能也不知道該從多標註一些資料開始?
還是該從多加一些特徵值開始?
還是應該調整模型設計?
正是因為全部一起做完才一起去評估,
就很難知道哪一個步驟的影響是什麼,
也很難排除他們之間交互的影響。
互動式機器學習和上面這個流程完全相反,
他強調的是快速得到回饋,
藉此保證模型符合創建者想要的樣子。
這個怎麼做呢?
基本上就是不一開始把所有資料點都標註好,
而是讓建模型的人,
隨機或是根據特定方法(像是關鍵字搜尋),
去找出一些資料點來標記,
然後根據這些資料生成特徵值,
餵給模型學習,
接著去看模型是否能正確判斷現有的資料點。
如果出來的結果有錯,
那建模型的人可以檢查錯誤是什麼,
去針對問題作出修正(例如特徵值不夠,或是標註錯誤)。
因為是一點一滴建出來,
並且在沿途都有確定模型與自己想要的一樣,
這樣的模型會比較容易和創建者的想法一致。
但這樣的做法的缺點是,
不斷地要人給回饋、檢視結果,
這個成本是相當高的。
而且萬一資料點選得不好,
那即使模型沿途跟創建者的想法一致,
也不代表他可以在整個資料集表現很好。
而且因為資料點一開始並沒有都被標記好,
所以我們也不知道現在的模型,
到底在還沒有標記的資料點上表現如何。
所以在互動式機器學習中,
怎麼選擇資料點、怎麼樣找出具有代表性的資料點,
就非常的重要。
其中一派的做法,是希望把分類目標的「概念」定義清楚,
例如如果要做分類「狗的圖片」的模型,
我們可以把狗分成白狗、黑狗、灰狗、花狗,
也可以把狗分成不同的品種。
在上上篇我有放了一個YouTube的影片,
提到的可視化分析工具「AnchorViz」就是想要解決上面的問題。
AnchorViz的概念,就是互動性地把資料點標註,然後,
根據他所屬的概念創建Anchor。
接著可以利用Anchor來操控剩下的資料點的分佈,
然後把已經標註的資料點的分類跟還沒有標註的資料的分類,
用不同的顏色跟形狀表達,
讓使用者可以探索資料集,尋找下一個想標註的點。
每次標註完,機器都會重新訓練,然後更新結果,
如果結果有問題,使用者可以直接去加新的特徵值,
或是再找更多例子標註。
在探索的時候,透過顏色跟形狀的輔助,
使用者可以去看有沒有應該屬於目標分類概念的點,
被散佈在不屬於該目標分類概念的Anchor附近。
這只是一個互動式機器學習的例子,
有些時候我們也可以取互動和非互動兩者之間的組合,
例如像Google之前也有推出一個TensorFlow Playground,
讓使用者去互動性的創建深度學習模型,
但這個當然還是屬於比較非真實的情境才能用。
又或是Google也有推出Teachable Machine,
這個比較接近之前說的Machine Teaching的概念。
也是讓使用者直接去給例子,
然後看結果、作出修正,
這些都是比較屬於互動式機器學習的例子。
當然這個領域還很新,所以很多東西是願景的成份居多,
我自己是很期待未來我們可以更偏重這個方向的發展,
究竟未來如何,讓我們看下去囉~